home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NOVA - For the NeXT Workstation
/
NOVA - For the NeXT Workstation.iso
/
SourceCode
/
AdobeExamples
/
NX_Patterns
/
PatternApp.h
< prev
next >
Wrap
Text File
|
1992-12-19
|
4KB
|
154 lines
/*
* (a) (C) 1990 by Adobe Systems Incorporated. All rights reserved.
*
* (b) If this Sample Code is distributed as part of the Display PostScript
* System Software Development Kit from Adobe Systems Incorporated,
* then this copy is designated as Development Software and its use is
* subject to the terms of the License Agreement attached to such Kit.
*
* (c) If this Sample Code is distributed independently, then the following
* terms apply:
*
* (d) This file may be freely copied and redistributed as long as:
* 1) Parts (a), (d), (e) and (f) continue to be included in the file,
* 2) If the file has been modified in any way, a notice of such
* modification is conspicuously indicated.
*
* (e) PostScript, Display PostScript, and Adobe are registered trademarks of
* Adobe Systems Incorporated.
*
* (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
* CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
* AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
* ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
* OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
* WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
* WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
* DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
* OF THIRD PARTY RIGHTS.
*/
/*
* PatternApp.h
*
* This class performs some of the global functions necessary to start
* the application. The drawing window is created here.
*
* Version: 2.0
* Author: Ken Fromm
* History:
* 03-07-91 Added this comment.
*/
#import <appkit/Application.h>
#import <appkit/View.h>
#define CIRCLESTAR 0
#define OCTAGON 1
#define BRICK 2
#define WEAVE 3
#define NUM_PATTERNS 4
#define STROKE 0
#define FILL 1
#define TEXT 2
/*
* These values determine how the pattern
* will be displayed. Each places a clipping path
* around the path to be filled.
*
* The draw method draws each cell each time.
* It is not the preferred method. (The font method
* should be used instead.)
*
* The font method builds a character for each
* color (layer) in the pattern. The characters are
* then drawn a layer at a time. Its faster than the
* first method because the characters are cached
* in the font cache.
*
* The composite method creates an image
* and then tiles the image through the path.
* An advantage here is that only one pass is
* necessary even with multicolored patterns.
* Unfortunately, it cannot be used for printing.
*
* It turns out that a big performance win is gained
* if the cell size is increased from a single image
* into a cell with multiple images. Care must be
* taken though to insure proper alignment of the
* images within the cells.
*/
#define TYPE_DRAW 0
#define TYPE_FONT 1
#define TYPE_COMP 2
/*
* These values lock the pattern to either the window or the view.
*
* If locked to the window, the changes produced by scrolling
* are handled by a currenthalftonephase transtation (see the
* PATthtp procedure in PatternDict). Resizing of the window or
* changes in the placement of the view within the window may
* cause shifts in the pattern tiling.
*
* Locking to the view eliminates the shifts of the pattern tiling
* when the window is resized or when the view is moved within
* the window. In the case of LOCK_VIEW, the size of the
* pattern cell remains unchanged at any scale of the view. In
* the case of LOCK_VIEWSCALE, the pattern cell scales to
* reflect the scale of the drawing view.
*
* Level 2 patterns will most likely be handled like the first case.
* If the behavior of either of the last two cases is desired then
* the pattern will have to be remade when the window resizes,
* the view is moved or the scale changes.
*/
#define LOCK_WINDOW 0
#define LOCK_VIEW 1
#define LOCK_VIEWSCALE 2
#define SCROLLVIEW_BORDER NX_NOBORDER
@interface PatternApp : Application
{
id countMatrix,
graphicsMatrix,
patternMatrix,
timingMatrix,
typeMatrix,
lockMatrix,
zoomMatrix,
patternBox,
drawingviewId, /* the drawing view */
windowId; /* the window the views above are in */
}
- createWindow:(NXRect *) winRect;
- free;
- countMatrix;
- graphicsMatrix;
- patternMatrix;
- timingMatrix;
- typeMatrix;
- lockMatrix;
- zoomMatrix;
- patternBox;
- drawingView;
- docView;
- appDidInit:sender;
- windowDidResize:sender;
@end